Analyse des Diamants : Les Facteurs du Prix đź’Ž

Projet d’Analyse Descriptive Approfondie

Author

Abir Hamda

Published

07 January 2026

0.1 đź’Ž Les 4C des Diamants

Carat • Cut • Color • Clarity

0.1.1 53 940 diamants analysés

Comprendre les facteurs qui déterminent le prix pour optimiser les décisions business


1 Introduction

1.1 Contexte du Projet

Ce rapport présente une analyse descriptive approfondie du dataset diamonds, qui contient les caractéristiques et prix de 53 940 diamants.

1.1.1 Question de Recherche Principale

“Quels sont les facteurs qui influencent le prix d’un diamant, et comment peut-on optimiser notre stratégie de pricing et d’inventaire ?”

1.2 Objectifs de l’Analyse

Note🎯 Objectifs Spécifiques
  1. Identifier les variables ayant le plus d’impact sur le prix
  2. Analyser les relations entre les caractéristiques des diamants
  3. Découvrir des patterns et insights non-intuitifs
  4. Formuler des recommandations stratégiques basées sur les données

1.3 Méthodologie

  • Outil : R 4.x + RStudio
  • Packages : ggplot2, dplyr, corrplot, scales
  • Dataset : diamonds (package ggplot2)
  • Approche : Analyse descriptive univariĂ©e, bivariĂ©e et multivariĂ©e

2 Exploration des Données

2.1 Structure du Dataset

Code
# Afficher la structure avec glimpse
glimpse(diamonds)
Rows: 53,940
Columns: 10
$ carat   <dbl> 0.23, 0.21, 0.23, 0.29, 0.31, 0.24, 0.24, 0.26, 0.22, 0.23, 0.…
$ cut     <ord> Ideal, Premium, Good, Premium, Good, Very Good, Very Good, Ver…
$ color   <ord> E, E, E, I, J, J, I, H, E, H, J, J, F, J, E, E, I, J, J, J, I,…
$ clarity <ord> SI2, SI1, VS1, VS2, SI2, VVS2, VVS1, SI1, VS2, VS1, SI1, VS1, …
$ depth   <dbl> 61.5, 59.8, 56.9, 62.4, 63.3, 62.8, 62.3, 61.9, 65.1, 59.4, 64…
$ table   <dbl> 55, 61, 65, 58, 58, 57, 57, 55, 61, 61, 55, 56, 61, 54, 62, 58…
$ price   <int> 326, 326, 327, 334, 335, 336, 336, 337, 337, 338, 339, 340, 34…
$ x       <dbl> 3.95, 3.89, 4.05, 4.20, 4.34, 3.94, 3.95, 4.07, 3.87, 4.00, 4.…
$ y       <dbl> 3.98, 3.84, 4.07, 4.23, 4.35, 3.96, 3.98, 4.11, 3.78, 4.05, 4.…
$ z       <dbl> 2.43, 2.31, 2.31, 2.63, 2.75, 2.48, 2.47, 2.53, 2.49, 2.39, 2.…
Tip📊 Informations Clés
  • 53 940 observations (diamants)
  • 10 variables : 7 numĂ©riques + 3 catĂ©gorielles ordonnĂ©es
  • Aucune valeur manquante (dataset propre)

2.2 Variables du Dataset

Description des Variables du Dataset
Variable Type Description
carat Numérique Poids du diamant (0.2-5.01 carats)
cut Catégorielle Qualité de la taille (Fair < Good < Very Good < Premium < Ideal)
color Catégorielle Couleur (D=meilleur → J=pire)
clarity Catégorielle Pureté (I1=pire → IF=parfait)
depth Numérique Profondeur totale en % (43-79%)
table Numérique Largeur de la table en % (43-95%)
price Numérique Prix en USD ($326 - $18,823)
x Numérique Longueur en mm (0-10.74)
y Numérique Largeur en mm (0-58.9)
z Numérique Profondeur en mm (0-31.8)

2.3 Statistiques Descriptives Globales

Code
# Statistiques du prix
summary(diamonds$price)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    326     950    2401    3933    5324   18823 
Important💰 Statistiques Clés du Prix
Mesure Valeur
Prix Minimum $326
Prix Moyen $3,932.80
Prix Médian $2,401
Prix Maximum $18,823
Écart-Type $3,989.44
Q1 (25%) $950
Q3 (75%) $5,324.25

Observation : Le prix médian ($2,401) est inférieur au prix moyen ($3,933), ce qui indique une distribution asymétrique à droite (présence de diamants très chers).

2.4 Statistiques par Qualité de Coupe

Code
# Tableau récapitulatif par Cut
diamonds_summary <- diamonds %>%
  group_by(cut) %>%
  summarise(
    Nombre = format(n(), big.mark=" "),
    Pourcentage = paste0(round(100 * n() / nrow(diamonds), 1), "%"),
    `Prix Moyen` = dollar(round(mean(price))),
    `Prix Médian` = dollar(median(price)),
    `Carat Moyen` = round(mean(carat), 2)
  ) %>%
  arrange(desc(`Prix Moyen`))

kable(diamonds_summary, caption = "Statistiques Détaillées par Qualité de Coupe")
Statistiques Détaillées par Qualité de Coupe
cut Nombre Pourcentage Prix Moyen Prix Médian Carat Moyen
Premium 13 791 25.6% $4,584 $3,185 0.89
Fair 1 610 3% $4,359 $3,282 1.05
Very Good 12 082 22.4% $3,982 $2,648 0.81
Good 4 906 9.1% $3,929 $3,050.50 0.85
Ideal 21 551 40% $3,458 $1,810 0.70
Warning⚠️ Paradoxe Observé

Les diamants “Fair” (qualité inférieure) ont un prix moyen plus élevé que les “Ideal” !

Explication : Ce paradoxe s’explique par un carat moyen supérieur dans la catégorie Fair (1.05 vs 0.7 pour Ideal). Le poids (carat) domine tellement le prix qu’il masque l’effet de la qualité de coupe.


3 Analyse Univariée

3.1 Distribution du Prix

Code
# Histogramme + densité du prix
ggplot(diamonds, aes(x = price)) +
  geom_histogram(aes(y = after_stat(density)), bins = 80, 
                 fill = "#667eea", color = "white", alpha = 0.7) +
  geom_density(color = "#764ba2", linewidth = 1.5) +
  geom_vline(xintercept = mean(diamonds$price), 
             linetype = "dashed", color = "red", linewidth = 1) +
  annotate("text", x = mean(diamonds$price) + 3000, y = 0.00015, 
           label = paste("Moyenne =", dollar(round(mean(diamonds$price)))), 
           color = "red", size = 5) +
  scale_x_continuous(labels = dollar_format()) +
  labs(
    title = "Distribution du Prix des Diamants",
    subtitle = paste0("n = ", format(nrow(diamonds), big.mark=" "), " diamants | Distribution asymétrique à droite"),
    x = "Prix (USD)",
    y = "Densité"
  )

Interprétations :

  • Distribution fortement asymĂ©trique Ă  droite (skewed right)
  • Concentration importante de diamants Ă  bas prix (<5000 USD)
  • PrĂ©sence de valeurs extrĂŞmes (outliers) au-delĂ  de 15 000 USD
  • La moyenne est tirĂ©e vers le haut par les diamants très chers

3.2 Distribution du Carat

Code
# Histogramme du carat avec seuils psychologiques
ggplot(diamonds, aes(x = carat)) +
  geom_histogram(bins = 100, fill = "#ff9800", color = "white", alpha = 0.8) +
  geom_vline(xintercept = c(0.5, 1.0, 1.5, 2.0), 
             linetype = "dashed", color = "#e74c3c", linewidth = 1.2) +
  annotate("text", x = c(0.5, 1.0, 1.5, 2.0), y = 8500, 
           label = c("0.5ct", "1.0ct", "1.5ct", "2.0ct"), 
           color = "#e74c3c", size = 5, fontface = "bold") +
  labs(
    title = "Distribution du Poids des Diamants",
    subtitle = "Pics observés aux seuils psychologiques (0.5, 1.0, 1.5, 2.0 carats)",
    x = "Carat (poids)",
    y = "Nombre de Diamants"
  )

Tipđź’ˇ Insight : Seuils Psychologiques

Les pics à 0.5, 1.0, 1.5 et 2.0 carats révèlent des seuils psychologiques de demande.

Opportunité Business : Proposer des diamants de 0.95 carat au lieu de 1.0 carat permet une économie de 10-15% pour le client sans différence visible, tout en maintenant des marges attractives.

3.3 Répartition des Variables Catégorielles

Code
# Cut
p1 <- ggplot(diamonds, aes(x = cut, fill = cut)) +
  geom_bar(alpha = 0.8) +
  scale_fill_brewer(palette = "Set2") +
  labs(title = "Répartition par Cut", x = NULL, y = "Nombre") +
  theme(legend.position = "none") +
  geom_text(stat = 'count', aes(label = after_stat(count)), vjust = -0.5, size = 4)

# Color
p2 <- ggplot(diamonds, aes(x = color, fill = color)) +
  geom_bar(alpha = 0.8) +
  scale_fill_brewer(palette = "Spectral") +
  labs(title = "Répartition par Color", x = NULL, y = "Nombre") +
  theme(legend.position = "none") +
  geom_text(stat = 'count', aes(label = after_stat(count)), vjust = -0.5, size = 4)

# Clarity
p3 <- ggplot(diamonds, aes(x = clarity, fill = clarity)) +
  geom_bar(alpha = 0.8) +
  scale_fill_brewer(palette = "Accent") +
  labs(title = "Répartition par Clarity", x = NULL, y = "Nombre") +
  theme(legend.position = "none", axis.text.x = element_text(angle = 45, hjust = 1)) +
  geom_text(stat = 'count', aes(label = after_stat(count)), vjust = -0.5, size = 4)

# Combiner
grid.arrange(p1, p2, p3, ncol = 2)

Observations :

  • Cut : “Ideal” domine avec 40% des diamants
  • Color : RĂ©partition relativement Ă©quilibrĂ©e, pic Ă  “G” (20.9%)
  • Clarity : “SI1” est le plus frĂ©quent (24.2%)

4 Analyse Bivariée

4.1 Le Carat : Facteur Dominant du Prix

Le carat (poids) est la variable ayant l’impact le plus significatif sur le prix.

4.1.1 Relation Prix vs Carat

Code
# Scatterplot avec courbe de tendance
ggplot(diamonds_sample, aes(x = carat, y = price)) +
  geom_point(alpha = 0.3, color = "#667eea", size = 1.5) +
  geom_smooth(method = "loess", color = "#764ba2", linewidth = 2, se = TRUE, fill = "#764ba2", alpha = 0.2) +
  scale_y_continuous(labels = dollar_format()) +
  labs(
    title = "Relation Prix vs Carat : Corrélation Très Forte",
    subtitle = paste("Corrélation de Pearson =", round(cor(diamonds$price, diamonds$carat), 3), 
                     "| Relation non-linéaire (exponentielle)"),
    x = "Carat (poids)",
    y = "Prix (USD)"
  ) +
  theme_minimal(base_size = 13)

Important🔥 Insight Majeur : Corrélation 0.92

La corrélation entre Prix et Carat est de 0.922, ce qui indique une relation très forte et positive.

Points Clés : - La relation est non-linéaire : le prix augmente de manière exponentielle avec le carat - Un diamant de 2 carats ne coûte PAS 2× le prix d’un 1 carat, mais plutôt 4-5× plus cher - Plus le diamant est lourd, plus la variabilité du prix augmente (effet des autres facteurs)

4.2 Influence de la Qualité de Coupe (Cut)

Code
ggplot(diamonds, aes(x = reorder(cut, price, FUN = median), y = price, fill = cut)) +
  geom_boxplot(alpha = 0.7, outlier.alpha = 0.3) +
  scale_fill_brewer(palette = "Set2") +
  scale_y_continuous(labels = dollar_format()) +
  coord_flip() +
  labs(
    title = "Distribution du Prix par Qualité de Coupe",
    subtitle = "Ordonné par prix médian croissant",
    x = "Qualité de Coupe",
    y = "Prix (USD)"
  ) +
  theme(legend.position = "none")

Interprétations :

  • Contrairement Ă  l’intuition, “Ideal” n’a pas le prix mĂ©dian le plus Ă©levĂ©
  • Explication : Les “Ideal” ont en moyenne un carat plus faible
  • Pour comparer Ă©quitablement, il faut contrĂ´ler pour le carat (voir section multivariĂ©e)

4.3 Influence de la Couleur (Color)

Code
ggplot(diamonds, aes(x = color, y = price, fill = color)) +
  geom_violin(alpha = 0.7) +
  geom_boxplot(width = 0.2, fill = "white", alpha = 0.5, outlier.alpha = 0.3) +
  scale_fill_brewer(palette = "Spectral", direction = -1) +
  scale_y_continuous(labels = dollar_format()) +
  labs(
    title = "Distribution du Prix par Couleur",
    subtitle = "D = Incolore (meilleur) • J = Jaune pâle (moins bon)",
    x = "Couleur",
    y = "Prix (USD)"
  ) +
  theme(legend.position = "none")

Observations :

  • Les couleurs D, E, F (incolores) tendent vers des prix plus Ă©levĂ©s
  • Paradoxe similaire au Cut : effet du carat moyen diffĂ©rent par catĂ©gorie
  • Recommandation : Color G-H offre un excellent rapport qualitĂ©/prix (15-20% moins cher que D-E, diffĂ©rence invisible)

4.4 Influence de la Pureté (Clarity)

Code
ggplot(diamonds, aes(x = clarity, y = price, fill = clarity)) +
  geom_violin(alpha = 0.7) +
  geom_boxplot(width = 0.2, fill = "white", alpha = 0.5, outlier.alpha = 0.3) +
  scale_fill_brewer(palette = "Purples") +
  scale_y_continuous(labels = dollar_format()) +
  labs(
    title = "Distribution du Prix par Pureté",
    subtitle = "IF = Internally Flawless (parfait) • I1 = Included (imparfait)",
    x = "Pureté (Clarity)",
    y = "Prix (USD)"
  ) +
  theme(legend.position = "none", axis.text.x = element_text(angle = 45, hjust = 1))

Insights :

  • Tendance gĂ©nĂ©rale : meilleure puretĂ© = prix plus Ă©levĂ©
  • Sweet spot : VS2 (Very Slightly Included 2) → invisible Ă  l’œil nu, 30-40% moins cher que IF
  • Les catĂ©gories SI1-SI2 reprĂ©sentent 41.3% du marchĂ©

5 Analyse Multivariée

5.1 Matrice de Corrélation

Code
# Calculer corrélations pour variables numériques
cor_vars <- diamonds %>%
  select(carat, depth, table, price, x, y, z) %>%
  cor()

# Visualiser avec corrplot
corrplot(cor_vars, 
         method = "color", 
         type = "upper",
         tl.col = "black",
         tl.cex = 1.2,
         tl.srt = 45,
         addCoef.col = "black",
         number.cex = 1,
         col = colorRampPalette(c("#6D9EC1", "white", "#E46726"))(200),
         title = "Matrice de Corrélation - Variables Numériques",
         mar = c(0, 0, 2, 0))

Note🔍 Analyse des Corrélations

Corrélations Fortes avec le Prix :

  • Carat : 0.922 🔥 (facteur dominant)
  • x (longueur) : 0.884
  • y (largeur) : 0.865
  • z (profondeur) : 0.861

Corrélations Faibles avec le Prix :

  • depth : -0.011 (impact nĂ©gligeable)
  • table : 0.127 (impact nĂ©gligeable)

Observation Clé : Les dimensions x, y, z sont fortement corrélées au carat (logique : plus le diamant est lourd, plus il est grand). Elles n’apportent donc pas d’information supplémentaire par rapport au carat.

5.2 Prix vs Carat par Qualité de Coupe

Code
# Facet wrap par Cut
ggplot(diamonds, aes(x = carat, y = price, color = cut)) +
  geom_point(alpha = 0.2, size = 0.8) +
  geom_smooth(method = "loess", se = FALSE, linewidth = 1.5) +
  facet_wrap(~cut, ncol = 3) +
  scale_color_brewer(palette = "Set1") +
  scale_y_continuous(labels = dollar_format()) +
  labs(
    title = "Prix vs Carat par Qualité de Coupe",
    subtitle = "Chaque qualité suit une courbe exponentielle similaire",
    x = "Carat (poids)",
    y = "Prix (USD)"
  ) +
  theme_minimal(base_size = 12) +
  theme(legend.position = "bottom")

Interprétations :

  • Toutes les qualitĂ©s de coupe suivent une courbe exponentielle similaire
  • Ă€ carat Ă©gal, “Ideal” tend Ă  ĂŞtre lĂ©gèrement plus cher que “Fair”
  • L’effet du Cut est modĂ©rĂ© comparĂ© au Carat

5.3 Heatmap : Prix Moyen par Cut et Color

Code
# Créer données agrégées
heatmap_data <- diamonds %>%
  group_by(cut, color) %>%
  summarise(prix_moyen = mean(price), n = n(), .groups = "drop")

# Heatmap
ggplot(heatmap_data, aes(x = color, y = cut, fill = prix_moyen)) +
  geom_tile(color = "white", linewidth = 0.5) +
  geom_text(aes(label = dollar(round(prix_moyen))), color = "white", size = 3.5, fontface = "bold") +
  scale_fill_gradient2(low = "#3498db", mid = "#f39c12", high = "#e74c3c", 
                       midpoint = 4000, labels = dollar_format()) +
  labs(
    title = "Prix Moyen par Combinaison Cut-Color",
    subtitle = "Zones rouges = prix élevés | Zones bleues = prix bas",
    x = "Couleur (D=meilleur → J=pire)",
    y = "Qualité de Coupe",
    fill = "Prix Moyen"
  ) +
  theme_minimal(base_size = 13) +
  theme(axis.text.x = element_text(angle = 0))

Insights :

  • Les combinaisons Fair + J/I ont des prix moyens Ă©levĂ©s (effet du carat moyen)
  • Ideal + D n’est pas la plus chère (carat moyen plus faible)
  • Pour une analyse juste, il faudrait contrĂ´ler pour le carat

6 Insights Avancés

6.1 Top 10 Diamants les Plus Chers

Code
top_diamants <- diamonds %>%
  arrange(desc(price)) %>%
  select(carat, cut, color, clarity, price, x, y, z) %>%
  head(10) %>%
  mutate(
    Rang = 1:10,
    Prix = dollar(price),
    Dimensions = paste0(x, "Ă—", y, "Ă—", z, " mm")
  ) %>%
  select(Rang, carat, cut, color, clarity, Prix, Dimensions)

kable(top_diamants, caption = "Les 10 Diamants les Plus Chers du Dataset")
Les 10 Diamants les Plus Chers du Dataset
Rang carat cut color clarity Prix Dimensions
1 2.29 Premium I VS2 $18,823 8.5Ă—8.47Ă—5.16 mm
2 2.00 Very Good G SI1 $18,818 7.9Ă—7.97Ă—5.04 mm
3 1.51 Ideal G IF $18,806 7.37Ă—7.41Ă—4.56 mm
4 2.07 Ideal G SI2 $18,804 8.2Ă—8.13Ă—5.11 mm
5 2.00 Very Good H SI1 $18,803 7.95Ă—8Ă—5.01 mm
6 2.29 Premium I SI1 $18,797 8.52Ă—8.45Ă—5.24 mm
7 2.04 Premium H SI1 $18,795 8.37Ă—8.28Ă—4.84 mm
8 2.00 Premium I VS1 $18,795 8.13Ă—8.02Ă—4.91 mm
9 1.71 Premium F VS2 $18,791 7.57Ă—7.53Ă—4.7 mm
10 2.15 Ideal G SI2 $18,791 8.29Ă—8.35Ă—5.21 mm

Observations :

  • Tous ont un carat > 2.0
  • QualitĂ© de coupe : majoritairement Premium et Ideal
  • Couleurs variĂ©es (pas uniquement D-E)
  • Le prix maximum atteint $18,823

6.2 Segmentation par Tranche de Prix

Code
# Créer segments
diamonds_segments <- diamonds %>%
  mutate(segment = case_when(
    price < 1000 ~ "Économique (<1K)",
    price < 5000 ~ "Milieu de gamme (1K-5K)",
    price < 10000 ~ "Premium (5K-10K)",
    TRUE ~ "Luxe (>10K)"
  )) %>%
  mutate(segment = factor(segment, levels = c("Économique (<1K)", 
                                                "Milieu de gamme (1K-5K)", 
                                                "Premium (5K-10K)", 
                                                "Luxe (>10K)")))

# Statistiques par segment
stats_segments <- diamonds_segments %>%
  group_by(segment) %>%
  summarise(
    Nombre = format(n(), big.mark=" "),
    Pourcentage = paste0(round(100 * n() / nrow(diamonds), 1), "%"),
    `Prix Moyen` = dollar(round(mean(price))),
    `Carat Moyen` = round(mean(carat), 2),
    .groups = "drop"
  )

kable(stats_segments, caption = "Répartition des Diamants par Segment de Prix")
Répartition des Diamants par Segment de Prix
segment Nombre Pourcentage Prix Moyen Carat Moyen
Économique (<1K) 14 499 26.9% $708 0.33
Milieu de gamme (1K-5K) 24 714 45.8% $2,621 0.71
Premium (5K-10K) 9 504 17.6% $6,930 1.21
Luxe (>10K) 5 223 9.7% $13,640 1.74
Code
# Visualiser segments
ggplot(diamonds_segments, aes(x = segment, fill = segment)) +
  geom_bar(alpha = 0.8) +
  scale_fill_brewer(palette = "Spectral") +
  labs(
    title = "Nombre de Diamants par Segment de Prix",
    x = NULL,
    y = "Nombre de Diamants"
  ) +
  theme_minimal(base_size = 13) +
  theme(legend.position = "none", axis.text.x = element_text(angle = 30, hjust = 1)) +
  geom_text(stat = 'count', aes(label = format(after_stat(count), big.mark=" ")), 
            vjust = -0.5, size = 5, fontface = "bold")

Tipđź’Ľ Implications Business
  • 26.9% des diamants sont dans la gamme Économique
  • 45.8% dans le Milieu de gamme (segment le plus large)
  • 9.7% dans le Luxe (marges Ă©levĂ©es)

Recommandation : Prioriser le stock dans le segment Milieu de gamme (1K-5K) qui représente la majorité de la demande.

6.3 Top 10 Combinaisons Cut + Color

Code
top_combo <- diamonds %>%
  group_by(cut, color) %>%
  summarise(
    `Prix Moyen` = dollar(round(mean(price))),
    `Carat Moyen` = round(mean(carat), 2),
    Nombre = format(n(), big.mark=" "),
    .groups = 'drop'
  ) %>%
  arrange(desc(`Carat Moyen`)) %>%
  head(10)

kable(top_combo, caption = "Top 10 Combinaisons Cut-Color par Prix Moyen (contrôlé par Carat)")
Top 10 Combinaisons Cut-Color par Prix Moyen (contrôlé par Carat)
cut color Prix Moyen Carat Moyen Nombre
Fair J $4,976 1.34 119
Premium J $6,295 1.29 808
Fair H $5,136 1.22 303
Fair I $4,685 1.20 175
Premium I $5,946 1.14 1 428
Very Good J $5,104 1.13 678
Good J $4,574 1.10 307
Good I $5,079 1.06 522
Ideal J $4,918 1.06 896
Very Good I $5,256 1.05 1 204

Observation : Les combinaisons avec les prix moyens les plus élevés sont celles avec le carat moyen le plus élevé, confirmant la dominance du poids.

6.4 Analyse des Valeurs ExtrĂŞmes

Code
# Identifier les outliers (prix > Q3 + 1.5*IQR)
Q1 <- quantile(diamonds$price, 0.25)
Q3 <- quantile(diamonds$price, 0.75)
IQR_price <- Q3 - Q1
seuil_outlier <- Q3 + 1.5 * IQR_price

n_outliers <- sum(diamonds$price > seuil_outlier)
pct_outliers <- round(100 * n_outliers / nrow(diamonds), 2)

# Stats des outliers
outliers_stats <- diamonds %>%
  filter(price > seuil_outlier) %>%
  summarise(
    Nombre = n(),
    `Prix Moyen` = dollar(round(mean(price))),
    `Carat Moyen` = round(mean(carat), 2),
    `Prix Max` = dollar(max(price))
  )

Résultats :

  • 3 540 diamants sont considĂ©rĂ©s comme outliers (6.56%)
  • Seuil d’outlier : $11,886
  • Ces diamants ont un carat moyen de 1.86 (vs 0.8 globalement)

7 Conclusions & Recommandations

7.1 Synthèse des Insights Clés

Important🎯 5 Insights Majeurs
  1. Le Carat est ROI : Corrélation de 0.922 avec le prix (facteur dominant)

  2. Relation Non-Linéaire : Le prix augmente de manière exponentielle avec le carat (un diamant de 2ct coûte 4-5× plus qu’un 1ct)

  3. Seuils Psychologiques : Pics de demande Ă  **0.5, 1.0, 1.5, 2